package cn.itcast.controller;


import cn.itcast.pojo.Emp;
import cn.itcast.pojo.EmpQueryParam;
import cn.itcast.pojo.PageResult;
import cn.itcast.pojo.Result;
import cn.itcast.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RestController
@RequestMapping("/emps")
public class EmpController {
    @Autowired
    private EmpService empService;

    /*1.定义变量接收*/
  /*  @GetMapping
    public Result page(@RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer pageSize){
        PageResult<Emp> pageResult = empService.page(page,pageSize);
        return Result.success(pageResult);
    }*/
    /*2.用类来接收*/
    //前端传过来简单参数，可以用两种方式接收
    //【1】直接定义同名参数（适用于参数比较少的时候）
    //【2】用是一个对象来接收（适用于参数比较多或变动比较大的情况）
    /*分页 - 条件 - 查询*/
    @GetMapping
    public Result page(EmpQueryParam empQueryParam){
        PageResult<Emp> pageResult = empService.page(empQueryParam);
        return Result.success(pageResult);
    }



    /*保存*/
    @PostMapping
    public Result save(@RequestBody Emp emp){
        empService.save(emp);
        return Result.success();
    }

    /*列表查询*/
    @GetMapping("/list")
    public Result list(){
        List<Emp> empList = empService.list();
        return Result.success(empList);
    }

    /*批量删除员工*/
    @DeleteMapping
    public Result deleteBatchById(@RequestParam List<Integer> ids){
        empService.deleteBatchById(ids);
        return Result.success();
    }

    /*根据id查询*/

    @GetMapping("/{id}")
    public Result getEmpById(@PathVariable Integer id){

        Emp emp = empService.getEmpById(id);
        return Result.success(emp);
    }

    /*修改emp*/
    @PutMapping
    public Result updateById(@RequestBody Emp emp){

        empService.updateById(emp);
        return Result.success();

    }
}
